Przejdź do głównej zawartości

Sposoby łączenia się z serwerem

Możemy korzystać z wielu sposobów, aby połączyć się z serwerem. AWS oferuje nam kilka opcji, które opisuję poniżej.

EC2 Instance Connect​

Ważne:

  • Nie musisz udostępniać i zarządzać kluczami SSH.
  • Instancja musi mieć publiczny adres IPv4.
  • Możesz połączyć się z instancją przez prywatną sieć za pomocą EC2 Instance Connect CLI z innych serwerów.
  • Jako nazwę użytkownika możesz podać dowolnego użytkownika, który istnieje w systemie i ma uprawnienia do logowania.

Więcej informacji:

Session Manager​

Session Manager to w pełni zarządzana funkcja AWS Systems Manager, która pozwala zarządzać instancjami Amazon EC2 za pomocą interaktywnej przeglądarkowej powłoki lub za pomocą AWS CLI.

Ważne:

  • Agent SSM powinien być zainstalowany na instancji.
  • Należy utworzyć profil IAM Instance i przypisać rolę IAM do instancji.
  • Grupa bezpieczeństwa dodana do punktu końcowego VPC musi zezwalać na ruch przychodzący HTTPS (port 443) z zasobów w Twoim VPC, które komunikują się z usługą.
  • Włączenie prywatnego DNS wymaga ustawienia atrybutów enableDnsSupport i enableDnsHostnames na true dla VPC.

Przykład połączenia za pomocą AWS CLI:

aws ssm start-session --target INSTANCE_ID

Więcej informacji:

Klient SSH​

Ważne:

  • Musisz udostępniać i zarządzać kluczami SSH.
  • Grupa bezpieczeństwa musi zezwalać na ruch przychodzący SSH (port 22).

Przykład połączenia:

ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name

Więcej informacji:

Konsola szeregowa EC2​

Ważne:

  • Musisz zezwolić na "Konsolę szeregową EC2" w "Ustawieniach EC2".
  • Musimy mieć możliwość zalogowania się na serwer z lokalnej konsoli. Logowanie za pomocą hasła.
  • Musimy używać typu instancji opartego na systemie AWS Nitro.

Kiedy używać?

  • Kiedy chcemy zmienić hasło.
  • Kiedy chcemy odzyskać dostęp do serwera.

Włącz konsolę szeregową EC2:

aws ec2 enable-serial-console-access --region us-east-1

Więcej informacji:

Jak odzyskać dostęp do serwera?​

Przypadek:

  • Nie mamy kluczy SSH.
  • Serwer SSH nie działa.
  • Nie mamy hasła do użytkownika.
  • Agent SSM nie został zainstalowany.

Domyślnie w obrazie Amazon Linux 2 nie jest generowane hasło dla użytkownika "ec2-user". Możemy ustawić to hasło, dodać klucz publiczny SSH lub naprawić inne problemy.

Mamy kilka popularnych sposobów, aby to zrobić:

  • Utwórz AMI z uszkodzonego serwera/EBS i utwórz nowy serwer z AMI.
  • Wyłącz instancję, odłącz EBS i podłącz EBS do nowego tymczasowego serwera, gdzie możemy naprawić usługi/pliki na tym EBS.
  • Ustaw hasło dla lokalnego użytkownika.

Ustawianie hasła dla lokalnego użytkownika na EC2​

Możemy użyć "User data" do tego celu. Domyślnie dane użytkownika działają podczas pierwszego uruchomienia serwera.

Możemy uruchomić następujące polecenie, aby ustawić hasło dla użytkownika ec2-user:

 echo "hasło" | passwd --stdin ec2-user

Przykład skryptu, który uruchamia się raz:

#!/bin/bash
/bin/echo "Hello World" >> /tmp/helloworld.txt
echo "hasło" | passwd --stdin ec2-user

Co powinniśmy zrobić?

Możemy dodać następujący skrypt do "User data", który uruchamia się za każdym razem, gdy serwer się uruchamia:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
echo "hasło" | passwd --stdin ec2-user

--//--

To ustawia hasło (hasło) dla użytkownika ec2-user.

Więcej informacji: